/**
 * @description plugin demo
 */
import type { App } from "vue"

// const pluginDemo = {
//     install: (app: App<any>, ...options: any[]) => {},
// }

/** the first plugin */
export default {
    install: (app: App<Element>, ...options: any[]) => {
        console.log("我的第一个插件")
        // [1] 挂载组件
        // import MyBanner from "@/src/components/MyBanner";
        // app.component('my-banner', MyBanner);

        // [2] 挂载指令
        // v-font-size
        app.directive("font-size", (el, binding, vnode) => {})

        // [3] provide & inject
        const clickMe = () => {}
        app.provide("clickMe", clickMe)
        // import {inject} from "vue";
        // const clickMe = inject('clickMe');
        // clickMe();

        // [4] 注入一个全局可用的 $translate() 方法
        app.config.globalProperties.$translate = (key: string, _options?: any) => {
            // 获取 `options` 对象的深层属性
            // 使用 `key` 作为索引
            // return key.split('.').reduce((o: any, i: any) => {
            //     if (o) return o[i]
            // }, options)
        }
    },
}
